package cn.iocoder.yudao.module.trade.dal.mysql.depositorder;


import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.trade.dal.dataobject.depositorder.DepositOrderDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.trade.controller.admin.depositorder.vo.*;

/**
 * 押金信息 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface DepositOrderMapper extends BaseMapperX<DepositOrderDO> {

    default PageResult<DepositOrderDO> selectPage(DepositOrderPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<DepositOrderDO>()
                .eqIfPresent(DepositOrderDO::getCode, reqVO.getCode())
                .eqIfPresent(DepositOrderDO::getCrmMemberUserId, reqVO.getCrmMemberUserId())
                .eqIfPresent(DepositOrderDO::getPayment, reqVO.getPayment())
                .eqIfPresent(DepositOrderDO::getOperatorId, reqVO.getOperatorId())
                .eqIfPresent(DepositOrderDO::getBalance, reqVO.getBalance())
                .eqIfPresent(DepositOrderDO::getPayStatus, reqVO.getPayStatus())
                .inIfPresent(DepositOrderDO::getStatus, reqVO.getStatusList())
                .eqIfPresent(DepositOrderDO::getSource, reqVO.getSource())
                .eqIfPresent(DepositOrderDO::getWipId, reqVO.getWipId())
                .eqIfPresent(DepositOrderDO::getWipCode, reqVO.getWipCode())
                .eqIfPresent(DepositOrderDO::getBillId, reqVO.getBillId())
                .inIfPresent(DepositOrderDO::getCrmMemberUserId, reqVO.getCrmIds())
                .inIfPresent(DepositOrderDO::getStatus, reqVO.getDepositStatus())
                .orderByDesc(DepositOrderDO::getId));
    }

}